package com.hbnu.system.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.hbnu.system.config.PostDeserializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 
 * </p>
 *
 * @author ${author}
 * @since 2023-05-16
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("team")

public class Team implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 团队编号
     */
    @ApiModelProperty(value = "主键团队编号")
    @TableId(value = "TeamID", type = IdType.ASSIGN_ID)
    private String TeamID;

    /**
     * 统计分类
     */
    @ApiModelProperty(value = "统计分类")
    @TableField("classifi")
    private String classifi;

    /**
     * 团队名称
     */
    @ApiModelProperty(value = "团队名称")
    @TableField("teamName")
    private String teamName;

    /**
     * 团队成立时间
     */
    @ApiModelProperty(value = "团队成立时间")
    @TableField("teamStartDate") //fill = FieldFill.INSERT 自动填入
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate teamStartDate;

    /**
     * 团队编号
     */
    @ApiModelProperty(value = "团队编号")
    @TableField("teamNum")
    private String teamNum;

    /**
     * 团队带头人
     */
    @ApiModelProperty(value = "团队带头人")
    @TableField("teamHead")
    private String teamHead;

    /**
     * 团队骨干
     */
    @ApiModelProperty(value = "团队骨干")
    @TableField("teamBackbone")
    private String teamBackbone;

    /**
     * 承担的项目
     */
    @ApiModelProperty(value = "承担的项目")
    @TableField("projects")
    private String projects;

    /**
     * 取得的成果
     */
    @ApiModelProperty(value = "取得的成果")
    @TableField("achievement")
    private String achievement;

    /**
     * 获奖情况
     */
    @ApiModelProperty(value = "获奖情况")
    @TableField("getRewards")
    private String getRewards;

    /**
     * 团队介绍
     */
    @ApiModelProperty(value = "团队介绍")
    @TableField("teamText")
    private String teamText;

    /**
     * 团队规划
     */
    @ApiModelProperty(value = "团队规划")
    @TableField("teamPlan")
    private String teamPlan;

    /**
     * 附件
     */
    @ApiModelProperty(value="附件")
    @JsonDeserialize(using = PostDeserializer.class)
    private byte[] annex;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @TableField("notes")
    private String notes;

    /**
     * 录入人
     */
    @ApiModelProperty(value = "录入人")
    @TableField("entered")
    private String entered;

    /**
     * 录入日期
     */
    @ApiModelProperty(value = "录入日期")
    @TableField("enteredDate") //fill = FieldFill.INSERT 自动填入
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime enteredDate;


}
